package lk.icta.core.dao;

import lk.icta.core.entity.AlienationRailway;
import lk.icta.core.entity.Payment;
import lk.icta.user.entity.User;

import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Map;

/**
 * @author Supun Viraj Rathnayaka
 */
public interface PaymentDAO {

    void addPayment(Payment payment, User user);

    void confirmPayment(Payment paymentId, User user);

    Payment getPaymentById(long paymentId, User user);

    public List<Payment> getPaymentByUserAndState(Payment.PaymentState state, User user);

    public List<Payment> getAllPaymentByUserAndState(Payment.PaymentState state, User user);

    List getPaymentsInTimeFrame(Map<String, Date> timeFrame, HashSet<AlienationRailway> alienationId);
}
